function createRequest() {
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP")
			} catch (failed) {
				request = null;
			}
		}
	}
	if (request == null) {
		alert("Error creating request object!");
	}
	return request;
}

function showAddForm() {
	document.getElementById("addFormDiv").style.visibility = "visible";
	document.getElementById("shadowLayer").style.visibility = "visible";
}

function hideAddForm() {
	document.getElementById("addFormDiv").style.visibility = "hidden";
	document.getElementById("shadowLayer").style.visibility = "hidden";
}

function submitAddForm() {
	// 전송할 데이터 준비
	var champName = document.getElementById("addForm")
						.champName.value;
	var champType = document.getElementById("addForm")
						.champType.value;
	var champHealth = document.getElementById("addForm")
						.champHealth.value;
	var champAttack = document.getElementById("addForm")
						.champAttack.value;
	// request 생성
	var request = createRequest();
	if (request) {
		var data = "name=" + encodeURIComponent(champName)
					+ "&type=" + encodeURIComponent(champType)
					+ "&health=" + encodeURIComponent(champHealth)
					+ "&damage=" + encodeURIComponent(champAttack);
		request.open("POST", "addx.jsp", false);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				// DB 삽입 성공
				if (request.status == 200) {
					alert("챔피언 정보를 등록하였습니다.");
					location.reload();	// 페이지 새로 고침
				}
				// DB 삽입 실패
				else {
					alert("챔피언 정보 등록 과정 중 오류가 발생하였습니다.");
				}
				hideAddForm();
			}
		};
		request.setRequestHeader("Content-Type",
			"application/x-www-form-urlencoded");
		request.send(data);
	}
}

function enableModify(formId) {
	if (formId) {
		var form = document.getElementById(formId);
		form.name.removeAttribute("readonly");
		form.name.style.borderWidth = "1px";
		form.type.removeAttribute("readonly");
		form.type.style.borderWidth = "1px";
		form.health.removeAttribute("readonly");
		form.health.style.borderWidth = "1px";
		form.damage.removeAttribute("readonly");
		form.damage.style.borderWidth = "1px";
		
		form.modifyBtn.style.display = "none";
		form.deleteBtn.style.display = "none";
		
		form.saveBtn.style.display = "inline";
		form.cancelBtn.style.display = "inline";
	}
}

function cancelModify(formId) {
	if (formId) {
		var form = document.getElementById(formId);
		
		form.reset();
		
		form.name.setAttribute("readonly","readonly");
		form.name.style.borderWidth = "0px";
		form.type.setAttribute("readonly","readonly");
		form.type.style.borderWidth = "0px";
		form.health.setAttribute("readonly","readonly");
		form.health.style.borderWidth = "0px";
		form.damage.setAttribute("readonly","readonly");
		form.damage.style.borderWidth = "0px";
		
		form.modifyBtn.style.display = "inline";
		form.deleteBtn.style.display = "inline";
		
		form.saveBtn.style.display = "none";
		form.cancelBtn.style.display = "none";
	}
}

function saveModify(formId) {
	if (formId) {
		var form = document.getElementById(formId);
		
		// 저장할 데이터 준비
		var no = form.no.value;
		var name = form.name.value;
		var type = form.type.value;
		var health = form.health.value;
		var damage = form.damage.value;
		
		var data = "no=" + encodeURIComponent(no)
				+ "&name=" + encodeURIComponent(name)
				+ "&type=" + encodeURIComponent(type)
				+ "&health=" + encodeURIComponent(health)
				+ "&damage=" + encodeURIComponent(damage);
		
		// request 객체 생성
		var reqeust = createRequest();
		// request.open
		request.open("POST", "editx.jsp", false);
		// request.onreadystatechange 콜백
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				// DB 수정 성공
				if (request.status == 200) {
					alert("챔피언 정보를 수정하였습니다.");
					location.reload();	// 페이지 새로 고침
				}
				// DB 수정 실패
				else {
					alert("챔피언 정보 수정 과정 중 오류가 발생하였습니다.");
					cancelModify(formId);
				}
			}
		};
		request.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
		// request.send
		request.send(data);
	}
}

function deleteChamp(formId) {
	if (formId && confirm("정말 챔피언 정보를 삭제하시겠습니까?")) {
		var form = document.getElementById(formId);
		var request = createRequest();
		var no = form.no.value;
		request.open("POST", "delete.jsp", false);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				// 삭제 성공
				if (request.status == 200) {
					alert("챔피언 정보를 삭제하였습니다.");
					location.reload();	// 페이지 새로 고침
				}
				// 삭제 실패
				else {
					alert("챔피언 정보 삭제 과정 중 오류가 발생하였습니다.");
				}
			}
		};
		request.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
		request.send("no=" + encodeURIComponent(no));
	}
}
























